package org.stvd.service.message;

import java.util.Map;

import org.stvd.core.dto.QueryResult;
import org.stvd.entities.message.BsMessageLog;
import org.stvd.service.base.BaseService;

/**
 * @Title: BsMessageLogService
 * @Description: 消息记录业务层接口类
 * @author houzx
 * @date 2020年9月18日
 */
public interface BsMessageLogService extends BaseService<BsMessageLog>{

    /**
     * @Description: 根据条件查询消息集合
     * @param start
     * @param limit
     * @param recId 接收者ID
     * @param type 消息类型，见MessageTypeEnum枚举
     * @param status 消息状态，见MessageStatusEnum枚举
     * @return
     */
    QueryResult<Map<String, Object>> queryMessageResult(int start, int limit, String recId, String type, String status);
    
    /**
     * @Description: 根据消息记录ID查询消息信息
     * @param logId 记录ID
     * @return
     */
    Map<String, Object> getMessageByLogId(Long logId);
    
    /**
     * @Description: 更新消息状态
     * @param messageLogIds 消息ID串
     * @param status 消息状态，见MessageStatusEnum枚举
     * @return
     */
    int updateMessageStatus(String messageLogIds, String status);

    /**
     * @Description: 同步更新消息记录
     * @param recId 接收者ID
     * @return
     */
    int syncUpdateMessage(String recId);
    
    /**
     * @Description: 获取未阅消息数量
     * @param recId 接收者ID
     * @return
     */
    Long countUnreadMessage(String recId);
    
    
}
